package com.Exception异常.Throws异常抛出;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

/**
 * 作    者 ：吾路巴尼
 * 创建时间 ：2025/2/18-0:45
 */
public class throws_抛出异常{
    /**
 * throws_抛出异常
 * 当JVM调用main方法，而main方法又调用别的方法例如f1，
 * 如果f1有异常，可以通过try-catch-finally来处理，也可以通过throws抛出异常，抛给调用的上一级main方法。
 * main方法也可以用try-catch-finally来处理异常，也可以不处理直接把异常抛给JVM处理。
 * JVM处理非常简单，直接打印异常信息，然后退出程序。
 */
/**int n = 10/0;这里main方法没有处理异常，默认throws抛给上一级JVM*/
    public static void main(String[] args) throws Exception {//不做处理默认抛给JVM处理

    }

    /**Throws抛出方式，*/
    public void f2() throws FileNotFoundException{  //可以处理单独的异常;
        FileInputStream fis = new FileInputStream("d:\\a.txt");//这里是找不到文件的编译异常，必须处理
    }
    public void f3() throws FileNotFoundException,NullPointerException,ArrayIndexOutOfBoundsException {//可以处理多个异常
        FileInputStream fis = new FileInputStream("d:\\a.txt");//FileNotFoundException
        String[] strings = new String[1];
        strings[1] = null;//ArrayIndexOutOfBoundsException
        strings[0].toString();//NullPointerException
    }
    public void f4() throws Exception {//也可以是其父类Exception
        FileInputStream fis = new FileInputStream("d:\\a.txt");//FileNotFoundException
        String[] strings = new String[1];
        strings[1] = null;//ArrayIndexOutOfBoundsException
        strings[0].toString();//NullPointerException
    }
}
